// 先加载路径文件，再加载header、footer
require(['./config'], () => {
    require(['template', 'header', 'footer', 'jquery', 'jqueryCookie'], (template) => {
        class Cart {
            constructor() {
                this.list = []
                this.allCount = 0
                this.allPrice = 0
                this.checkLogin()
                this.createCart()
            }

            // 检查是否登录
            checkLogin() {
                const res = $.cookie('user')
                if (!res) {
                    alert('您还没有登录，去登陆')
                    window.location.href = "/html/login.html"
                    return
                }
            }

            // 渲染购物车
            createCart() {
                this.list = JSON.parse(localStorage.getItem('list'))
                console.log(this.list);
                if (this.list && this.list.length) {
                    $('.empty').hide()
                    $('#shopList').html(template('cartTemplate', { list: this.list }))
                } else {
                    // alert('购物车现在是空的，去选购一点吧')
                    // location.href = '/'
                    $('#shopList').html('')
                    $('.empty').show()
                }


                // 调用函数渲染总价和总数
                this.getAllCountAllPrice()
                // 调用函数删除数据
                this.delProd()
                // 调用函数修改数量
                this.change()
                // 调用全选函数
                this.select()
            }

            // 计算总数和总价
            getAllCountAllPrice() {
                this.allCount = 0
                this.allPrice = 0
                this.list.forEach(item => {
                    this.allCount += item.count - 0
                    this.allPrice += item.count * item.price
                    // console.log(item.count);
                })
                console.log(this.allCount, this.allPrice);
                // 改变 dom 元素里面显示的数据
                $(".allCount").text(this.allCount)
                $(".allPrice").html("&yen; " + (this.allPrice).toFixed(2))
            }

            // 删除商品
            // 需要把 this.list 数据删除一条 存一下 localStorage 然后再重新渲染页面
            delProd() {
                const _that = this
                $('.del').click(function () {
                    // console.log($(this).parent().index() - 2)
                    const index = $(this).parent().index() - 2
                    // 需要把 this.list 数据删除一条
                    _that.list.splice(index, 1)
                    // 存一下 localStorage 然后再重新渲染页面
                    localStorage.setItem('list', JSON.stringify(_that.list))
                    // 重新渲染页面
                    _that.createCart()
                })
            }

            // 修改数量
            change() {
                // 存储this
                const _that = this
                $('.change').click(function (e) {
                    const target = e.target || e.srcElement
                    if (target.nodeName === 'BUTTON') {
                        // 找到当前这条数据的ul在父元素里面的索引
                        const index = $(target).parent().parent().index() - 2
                        // 点击减少
                        if ($(target).hasClass('reduce')) {
                            // 如果数量为1，那就不能再减了
                            if (_that.list[index].count === 1) {
                                $(target).addClass('notReduce')
                                return
                            }
                            _that.list[index].count--
                            localStorage.setItem('list', JSON.stringify(_that.list))
                        }
                        // 点击添加
                        else {
                            _that.list[index].count++
                            localStorage.setItem('list', JSON.stringify(_that.list))
                        }
                        _that.createCart()
                    }
                })
            }

            // 全选
            select() {
                const count = 0
                const select =$('.select')

                console.log($('.allSelect').prop('checked'));

                $('.allSelect').on('change',() => {
                    for(let i = 0 ; i < select.length; i++){
                        // 让每一个 input 的checked 的值 和 all 保持一致
                        select[i].checked = $('.allSelect').prop('checked')
                    }
                })
                // 单个点击全部选中后，全选复选框被选中   未完成
            }
        }
        return new Cart()
    })
})